home *** CD-ROM | disk | FTP | other *** search
/ WINMX Assorted Textfiles / Ebooks.tar / Text - Mathematics - Numerical Mathematics and Computing (F).zip / ngauss.f < prev    next >
Text File  |  2002-06-11  |  1KB  |  46 lines

  1. C
  2. C PAGE 208-209: NUMERICAL MATHEMATICS AND COMPUTING, CHENEY/KINCAID, 1985
  3. C
  4. C FILE: NGAUSS.FOR
  5. C
  6. C NAIVE GAUSSIAN ELIMINATION TO SOLVE LINEAR SYSTEMS (NGAUSS)
  7. C
  8.       PARAMETER  (IA = 15)
  9.       DIMENSION A(IA,IA),X(IA),B(IA)  
  10.       DO 4 N = 10,15
  11.         DO 3 I = 1,N
  12.           DO 2 J = 1,N      
  13.             A(I,J) = REAL(I+1)**(J-1) 
  14.    2      CONTINUE
  15.           B(I) = (REAL(I+1)**N - 1.0)/REAL(I)   
  16.    3    CONTINUE  
  17.         CALL NGAUSS(N,A,IA,B,X)       
  18.         PRINT 5,N,(X(I),I=1,N)
  19.    4  CONTINUE    
  20.    5  FORMAT(//,'N = ',I2,//,(2X,3E22.14))      
  21.       STOP
  22.       END 
  23.   
  24.       SUBROUTINE NGAUSS(N,A,IA,B,X)   
  25.       DIMENSION A(IA,N),B(N),X(N)     
  26.       DO 4 K = 1,N-1
  27.         DO 3 I = K+1,N      
  28.           XMULT = A(I,K)/A(K,K)       
  29.           DO 2 J = K+1,N    
  30.             A(I,J) = A(I,J) - XMULT*A(K,J)      
  31.    2      CONTINUE
  32.           A(I,K) = XMULT
  33.           B(I) = B(I) - XMULT*B(K)    
  34.    3    CONTINUE  
  35.    4  CONTINUE    
  36.       X(N) = B(N)/A(N,N)
  37.       DO 6 I = N-1,1,-1     
  38.         SUM = B(I)
  39.         DO 5 J = I+1,N      
  40.           SUM = SUM - A(I,J)*X(J) 
  41.    5    CONTINUE  
  42.         X(I) = SUM/A(I,I)   
  43.    6  CONTINUE    
  44.       RETURN
  45.       END 
  46.